package com.iswust.mianzhoutong.sign.mapper;

import com.iswust.mianzhoutong.sign.model.SignSummary;
import com.iswust.mianzhoutong.sign.model.dto.SignSummaryDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;


/**
 * @author liushuai
 * @create 2022-07-14 17:43
 */
@Repository
@Mapper
public interface SignSummaryMapper {

    /**
     * 查询用户本月签到,补签次数详情
     * @param userId 用户唯一标识
     * @return 返回本月签到数据 详见 {@link SignSummaryDto}
     */
    SignSummaryDto querySignMonthData(@Param("userId") Integer userId);

    /**
     * 创建一条新的月总记录
     * @param signSummary
     * @return 影响的行数
     */
    int insertSignSummary(SignSummary signSummary);

    /**
     * 更新月签到统计数据
     * @param userId 用户id
     * @param signSummaryDto 今日签到数据 详见:{@link SignSummaryDto}
     * @return 返回影响行数
     */
    int updateMonthSignData(@Param("userId")Integer userId, @Param("signSummary") SignSummaryDto signSummaryDto);

    /**
     * 查询今年签到数
     * @param  userId 用户唯一标识id
     * @return  返回今年的累计签到天数
     */
    int  querySignByYear(@Param("userId") Integer userId);

}
